hysop.tools.sympy_utils module

class hysop.tools.sympy_utils.AppliedUndef(*args)[source]

Bases: AppliedUndef

Tag for hysop applied undefined functions.

default_assumptions = {}
class hysop.tools.sympy_utils.CustomLatexPrinter(settings=None)[source]

Bases: LatexPrinter

class hysop.tools.sympy_utils.CustomStrPrinter(settings=None)[source]

Bases: StrPrinter

class hysop.tools.sympy_utils.CustomStrReprPrinter(settings=None)[source]

Bases: StrReprPrinter

class hysop.tools.sympy_utils.Dummy(name, var_name=None, latex_name=None, pretty_name=None, **kwds)[source]

Bases: SymbolicBase, Dummy

Tag for hysop dummy symbolic variables.

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

default_assumptions = {}
dummy_index
class hysop.tools.sympy_utils.Expr(*args)[source]

Bases: Expr

Tag for hysop symbolic expressions.

default_assumptions = {}
class hysop.tools.sympy_utils.SetupExprI[source]

Bases: object

Interface for setupable expressions.

setup(work)[source]
class hysop.tools.sympy_utils.Symbol(name, var_name=None, latex_name=None, pretty_name=None, **kwds)[source]

Bases: SymbolicBase, Symbol

Tag for hysop symbolic symbols.

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")

True >>> Symbol(“x”, real=True) == Symbol(“x”, real=False) False

default_assumptions = {}
name: str
class hysop.tools.sympy_utils.SymbolicBase(name, var_name=None, latex_name=None, pretty_name=None, **kwds)[source]

Bases: object

property varname
class hysop.tools.sympy_utils.UndefinedFunction(name, var_name=None, latex_name=None, pretty_name=None, **kwds)[source]

Bases: SymbolicBase, UndefinedFunction

Tag for hysop (unapplied) undefined functions. This is a metaclass.

class hysop.tools.sympy_utils.UnevaluatedExpr(arg, **kwargs)[source]

Bases: UnevaluatedExpr

Tag for hysop symbolic uneevaluated expressions.

default_assumptions = {}
class hysop.tools.sympy_utils.UnsplittedExpr(*args)[source]

Bases: Expr

Tag for hysop symbolic unsplitted expressions.

default_assumptions = {}
hysop.tools.sympy_utils.build_eqs_from_dicts(d0, d1)[source]

Build equations from two dictionnaries (lhs and rhs). ie. rhs-lhs = 0 For keys that are only present in one dictionary, the other operand is set to 0.

hysop.tools.sympy_utils.enable_pretty_printing()[source]
hysop.tools.sympy_utils.evalf_str(x, n, literal='', significant=True)[source]

Call evalf on x up to n-th decimal and removes zeros if significant is set.

hysop.tools.sympy_utils.exponent(i, with_sign=False)[source]

Generate an unicode exponent of value i, signs can be enforced.

hysop.tools.sympy_utils.exponents(ids, sep, with_sign=False, with_parenthesis=False, prefix='')[source]

Generate a unicode tuple exponent separated by sep, with or without parenthesis, prefix, and signs.

hysop.tools.sympy_utils.factor_split(expr, variables, constant_var=None, include_var=False, init=0, _factor=True, _handle_const=True)[source]

Factorize and split expresssion.

hysop.tools.sympy_utils.get_derivative_variables(expr)[source]

Derivative arguments changed for sympy 1.2

hysop.tools.sympy_utils.latex(expr, **settings)[source]
hysop.tools.sympy_utils.non_eval_xreplace(expr, rule)[source]

Duplicate of sympy’s xreplace but with non-evaluate statement included.

hysop.tools.sympy_utils.recurse_expression_tree(op, expr)[source]

Recurse through sympy expression tree and apply op on each subexpression.

hysop.tools.sympy_utils.remove_pows(expr)[source]

Convert pows to multiplications: x^3 -> x*x*x

hysop.tools.sympy_utils.round_expr(expr, num_digits=3)[source]
hysop.tools.sympy_utils.sstr(expr, **settings)[source]
hysop.tools.sympy_utils.sstrrepr(expr, **settings)[source]
hysop.tools.sympy_utils.subscript(i, with_sign=False, disable_unicode=False)[source]

Generate an unicode subscript of value i, signs can be enforced.

hysop.tools.sympy_utils.subscripts(ids, sep, with_sign=False, with_parenthesis=False, prefix='', disable_unicode=False)[source]

Generate a unicode tuple subscript separated by sep, with or without parenthesis, prefix, and signs.

hysop.tools.sympy_utils.tensor_symbol(prefix, shape, origin=None, mask=None, sep=None, with_parenthesis=False, force_sign=False)[source]

Generate a np.ndarray of sympy.Symbol. Each of the symbol has given prefix and subscripts are taken from specified origin if specified or else in matrix/tensor notation. Other parameters handles subscripts style, see the subscripts() function.

It also returns all generated Symbols as a list.

hysop.tools.sympy_utils.tensor_xreplace(tensor, vars)[source]

Performs an xreplace and all tensor (np.ndarray) elements.

hysop.tools.sympy_utils.truncate_expr(expr, maxlen=80)[source]